Motion recognition device and motion recognition method

ABSTRACT

A motion recognition device includes a memory, and a processor coupled to the memory and configured to classify a plurality of frames including positional information of a feature point that corresponds to a predetermined part or a joint part of a body of a subject into a plurality of groups in time series by segmenting the plurality of frames in time series based on a position of the predetermined part of the body of the subject, identify a type of a basic motion that corresponds to the group, based on movement of the feature point included in a consecutive frame, for each group, and evaluate a skill and a difficulty level of a motion performed by the subject based on an order of each type of the basic motion that corresponds to a group which is consecutive in time series.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation application of International Application PCT/JP2017/036797 filed on Oct. 11, 2017 and designated the U.S., the entire contents of which are incorporated herein by reference. The International Application PCT/JP2017/036797 is based upon and claims the benefit of priority of the prior International Application PCT/JP2016/080150 filed on Oct. 11, 2016, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to a motion recognition device and a recognition method.

BACKGROUND

In the field of various types of sports, many efforts or reforms have been carried out for many years in order to evaluate the performances of athletes fairly and accurately. However, recent skill progress of competition is remarkable, and in some cases, it is difficult to make an accurate evaluation simply by the visual observation of the judges. Therefore, a technique for automatically evaluating the performances of the athletes is desired. Hereinafter, one example of the technique for automatically evaluating the performances of the athletes will be described.

A technique, for evaluating the athletes who perform on the horizontal bar, detects keyboards from a two-dimensional silhouette image, recognizes the skill from a combination of keyboards, and performs automatic scoring. However, in the technique, since the skill is recognized using the two-dimensional silhouette image, it is possible to distinguish only a part of the skill of the competition which may be identified only by the two-dimensional silhouette.

Another technique is available to solve the problems. The another technique is a technique for generating a prototype of a movement of a skeleton of an athlete for each skill in advance and comparing each generated prototype with skeleton information of the athlete who conducts the performance to determine the skill.

However, with the above-described techniques, there is a problem that it is not possible to efficiently evaluate performance of a subject.

For example, in the another technique, the skill is identified by using each prototype prepared for each skill. Therefore, in order to distinguish various types of skills, the number of prototypes to be compared increases, and it takes time to recognize the corresponding skill.

The followings are reference documents.

[Document 1] International Publication Pamphlet No. WO2012/12402,

[Document 2] Takuya Yoshimura, Tsuyoshi Hashimoto “A study of improve gesture recognition accuracy using machine learning”, Game Programming Workshop 2012, Collection of Papers, pp. 167 to 170, 2012.6 (2012), and

[Document 3] J. Shin and Ozawa, “A Study on Motion Analysis of an Artistic Gymnastics by using Dynamic Image Processing”, IEEE International Conference on Systems Man and Cybernetics, pp. 1037 to 1042, 2008.

SUMMARY

According to an aspect of the embodiments, a motion recognition device includes a memory, and a processor coupled to the memory and configured to classify a plurality of frames including positional information of a feature point that corresponds to a predetermined part or a joint part of a body of a subject into a plurality of groups in time series by segmenting the plurality of frames in time series based on a position of the predetermined part of the body of the subject, identify a type of a basic motion that corresponds to the group, based on movement of the feature point included in a consecutive frame, for each group, and evaluate a skill and a difficulty level of a motion performed by the subject based on an order of each type of the basic motion that corresponds to a group which is consecutive in time series.

The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a view illustrating a configuration of a system according to the present example;

FIG. 2 is a view for describing an example of feature points of a skeleton;

FIG. 3 is a view illustrating an example of a data structure of skeleton data;

FIG. 4 is a functional block diagram illustrating a configuration of a motion recognition device;

FIG. 5 is a view illustrating an example of a data structure of calculation result data;

FIG. 6 is a view for describing an example of a body vector;

FIG. 7 is a view for describing an angle between a pommel horse and a body;

FIG. 8 is a view illustrating an example of a data structure of skill approval rule data;

FIG. 9 is a view illustrating an example of an angle region;

FIG. 10 is a view illustrating an example of a support position;

FIG. 11 is a view illustrating an example of a data structure of upgrade rule data;

FIG. 12 is a view illustrating an example of a data structure of evaluation result data;

FIG. 13 is a view for describing an example of a process of a segmentation unit;

FIG. 14 is a view for describing an evaluation function F(k);

FIG. 15 is a view illustrating an example of a display screen;

FIG. 16 is a flowchart (1) illustrating a process procedure of the motion recognition device;

FIG. 17 is a flowchart (2) illustrating a process procedure of the motion recognition device;

FIG. 18 is a flowchart illustrating a process procedure for determining a skill name and a difficulty level;

FIG. 19 is a flowchart illustrating a process procedure for upgrading the difficulty level;

FIG. 20 is a view illustrating an example of a process of the motion recognition device;

FIG. 21 is a view for describing an example of another body vector; and

FIG. 22 is a view illustrating an example of a hardware configuration of a computer that realizes a function similar to that of the motion recognition device.

DESCRIPTION OF EMBODIMENTS

Hereinafter, examples of a motion recognition device, a motion recognition program, and a motion recognition method disclosed in the present application will be described in detail with reference to the drawings. In addition, the present invention is not limited by the examples.

Example

FIG. 1 is a view illustrating a configuration of a system according to the present example. As illustrated in FIG. 1, the system includes a 3D (dimension) sensor 10, a skeleton recognition device 20, and a motion recognition device 100. For example, a subject 5 performs predetermined gymnastics in an imaging range of the 3D sensor 10. In the present example, as an example, a case where the subject 5 performs on a pommel horse will be described, but the present invention is not limited thereto and may be used in other gymnastics competitions.

The 3D sensor 10 is a sensor that measures distance information from an installation position of the 3D sensor 10 to each observation point on the subject 5 included in the imaging range of the 3D sensor 10. For example, the 3D sensor 10 generates three-dimensional data indicating three-dimensional coordinates of each observation point for each frame, and outputs the generated three-dimensional data to the skeleton recognition device 20. The frame indicates information on the three-dimensional coordinates of each observation point measured by the 3D sensor 10 at a certain timing, and the three-dimensional data is configured with a plurality of frames.

The skeleton recognition device 20 is a device for recognizing a plurality of feature points that configure the skeleton of the subject 5 based on the three-dimensional data. FIG. 2 is a view for describing an example of the feature points of the skeleton. As illustrated in FIG. 2, the feature points of the skeleton include feature points 5 a to 5 p.

The feature point 5 a is a point that corresponds to a position of the head. The feature points 5 b and 5 e are points that correspond to positions of the shoulder joints (right shoulder joint and left shoulder joint). The feature points 5 c and 5 f are points that correspond to positions of the elbow joints (right elbow joint and left elbow joint). The feature points 5 d and 5 g are points that correspond to positions of the wrists (right wrist and left wrist). The feature point 5 h is a point that corresponds to a position of the neck. The feature point 5 i is a point that corresponds to the back (the center of the back). The feature point 5 j is a point that corresponds to the waist (the center of the waist). The feature points 5 k and 5 n are points that correspond to positions of the crotch joints (right crotch joint and left crotch joint). The feature points 5 l and 5 o are points that correspond to positions of the knee joints (right knee joint and left knee joint). The feature points 5 m and 5 p are points that correspond to positions of the ankle (right ankle and left ankle).

Based on the three-dimensional data of each frame, the skeleton recognition device 20 recognizes the feature points of the skeleton for each frame, and generates skeleton data. FIG. 3 is a view illustrating an example of a data structure of the skeleton data. As illustrated in FIG. 3, the skeleton data has three-dimensional coordinates of each of the feature points 5 a to 5 p for each frame. Each frame is given a frame number that uniquely identifies the frame.

The motion recognition device 100 is a device for evaluating the skill and the difficulty level of the gymnastics performed by the subject 5 based on skeleton data. FIG. 4 is a functional block diagram illustrating a configuration of the motion recognition device. As illustrated in FIG. 4, the motion recognition device 100 includes an interface unit 110, an input unit 120, a storage unit 140, and a control unit 150.

The interface unit 110 is an interface for sending and receiving data to and from the skeleton recognition device 20 or other external devices. The control unit 150 which will be described later exchanges the data with the skeleton identification device 20 via the interface 110.

The input unit 120 is an input device for inputting various types of information to the motion recognition device 100. For example, the input unit 120 corresponds to a keyboard, a mouse, a touch panel, and the like.

The display unit 130 is a display device for displaying information output from the control unit 150. For example, the display unit 130 corresponds to a liquid crystal display, a touch panel, or the like.

The storage unit 140 has skeleton data 141, calculation result data 142, skill approval rule data 143, upgrade rule data 144, and evaluation result data 145. The storage unit 140 corresponds to a semiconductor memory device, such as a random access memory (RAM), a read only memory (ROM), or a flash memory, or a storage device, such as a hard disk drive (HDD).

The skeleton data 141 is skeleton data generated by the skeleton recognition device 20. The data structure of the skeleton data 141 is similar to the data structure of the skeleton data described in FIG. 3.

The calculation result data 142 is data having information on the position and posture of the tip of the hand and foot and the body of the subject 5. The calculation result data 142 is calculated by a calculation unit 152 to be described later. FIG. 5 is a view illustrating an example of a data structure of the calculation result data. As illustrated in FIG. 5, the calculation result data 142 associates the frame number, the hand and foot position data, the body vector data, and the segment number to each other.

Each frame number is information for uniquely identifying the frame. The hand and foot position data is data illustrating three-dimensional coordinates of both hands and both feet. For example, the hand position data corresponds to the three-dimensional coordinates of the feature points 5 d and 5 g of the wrist. For example, the foot position data corresponds to the three-dimensional coordinates of the feature points 5 m and 5 p of the ankle. The body vector data is data indicating the direction and magnitude of the body vector.

FIG. 6 is a view for describing an example of the body vector. As illustrated in FIG. 6, the body vector 7 corresponds to the normal vector of a plane 6 that passes through the feature point 5 b of the right shoulder joint, the feature point 5 e of the left shoulder joint, and the feature point 5 i of the back. For example, the magnitude of the body vector 7 is set to “1”. For example, the body vector is defined by an orthogonal coordinate system configured with an X axis, a Y axis, and a Z axis. A direction of the X axis is set to a longitudinal direction of a pommel horse 8. A direction of the Y axis is set to a direction orthogonal to the X axis. A direction of the Z axis is set to a vertically upward direction of an XY plane. In addition, when the body vector 7 is obtained, an angle between the pommel horse and the body may be defined.

The angle between the pommel horse and the body will be described. FIG. 7 is a view for describing the angle between the pommel horse and the body. As illustrated in FIG. 7, an angle θ between the pommel horse and the body is an angle between a line segment 1 a and a line segment 1 b. The line segment 1 b is a line segment obtained by making the body vector 7 projected onto the XY plane extend to the front of the subject 5. The line segment 1 a is a line segment that corresponds to the Y axis.

The segment number is a number that indicates to which group the frame belongs. The group treats each frame from a frame which is a starting point of a basic motion to a frame which is an end point of the basic motion as a set in a case where the subject performs a certain basic motion.

The same segment number is assigned to frames belonging to the same group. The segment number is set by a segmentation unit 153 which will be described later. For example, in a plurality of frames which are consecutive in time series, the plurality of frames included in frames from a frame that serves as a segment point to a frame that serves as the next segment point are frames included in the same group. In the following description, the plurality of frames belonging to the same group are appropriately described as “partial data”. An identification unit 154 which will be described later specifies the type of the basic motion that corresponds to the partial data for each piece of partial data.

The description will be made returning to FIG. 4. The skill approval rule data 143 is data used in a case where a first evaluation unit 155 which will be described later determines the skill name and the difficulty level. FIG. 8 is a view illustrating an example of a data structure of the skill approval rule data. As illustrated in FIG. 8, the skill approval rule data 143 includes basic motion type, starting point body angle region, end point body angle region, starting point left hand support position, starting point right hand support position, end point left hand support position, end point right hand support position, previous basic motion type, skill name, group, and difficulty level.

The basic motion type indicates the type of the basic motion. The starting point body angle region indicates in which predetermined angle region the direction of the body vector is included in the frame at the starting point included in the partial data. The end point body angle region indicates in which predetermined angle region the direction of the body vector is included in the frame at the end point included in the partial data. In the starting point body angle region and the end point body angle region of FIG. 8, A(B) indicates that the angle region may be a region A or may be a region B in combination of the outer part of ( ) or the inner part of ( ).

FIG. 9 is a view illustrating an example of the angle region. As illustrated in FIG. 9, the angle region includes a 0° region, a 90° region, a 180° region, and a 270° region. The line segment 1 b is a line segment obtained by making the body vector 7 of the subject 5 projected onto the XY plane extend to the front of the subject 5. In the example illustrated in FIG. 9, the direction of the body vector 7 is the 0° region.

The starting point left hand support position indicates to which predetermined support position on the pommel horse the position of the left hand (left wrist) of the subject 5 corresponds, in the frame at the starting point included in the partial data. The starting point right hand support position indicates to which predetermined support position on the pommel horse the position of the right hand (right wrist) of the subject 5 corresponds. In the starting point left hand support position and the starting point right hand support position of FIG. 8, A(B) indicates that the support position may be a region A or may be a support position B in combination of the outer part of ( ) or the inner part of ( ).

The end point left hand support position indicates to which predetermined support position on the pommel horse the position of the left hand (left wrist) of the subject 5 corresponds, in the frame at the end point included in the partial data. The end point right hand support position indicates to which predetermined support position on the pommel horse the position of the right hand (right wrist) of the subject 5 corresponds, in the frame at the end point included in the partial data. In the end point left hand support position and the end point right hand support position of FIG. 8, A(B) indicates that the support position may be a support position A or may be a support position B in combination of the outer part of ( ) or the inner part of ( ).

FIG. 10 is a view illustrating an example of the support position. In a case where the hand (left hand or right hand) of the subject 5 exists in the region 8 a, the position of the hand corresponds to the support position “1”. In a case where the hand of the subject 5 exists in the region 8 b, the position of the hand corresponds to the support position “2”. In a case where the hand of the subject 5 exists in the region 8 c, the position of the hand corresponds to the support position “3”. In a case where the hand of the subject 5 exists in the region 8 d, the position of the hand corresponds to the support position “4”. In a case where the hand of the subject 5 exists in the region 8 e, the position of the hand corresponds to the support position “5”.

The previous basic motion type indicates the type of the basic motion that corresponds to the partial data one piece earlier in time series than the partial data of interest. A previous basic motion type “any” indicates that the type of the previous basic motion may be any type. In the following description, the partial data one piece earlier in time series than the partial data of interest is expressed as “previous partial data”.

The skill name is the name of skill specified by the basic motion type, the starting point body angle region, the end point body angle region, the starting point left hand support position, the starting point right hand support position, the end point left hand support position, the end point right hand support position, and the previous basic motion type.

The group indicates a group in which the skill specified by the skill name is classified. The difficulty level indicates the difficulty level of the skill. The difficulty level of the skill is higher in the order of A, B, C, D, and E. The difficulty level A has the lowest difficulty level.

The description will be made returning to FIG. 4. The upgrade rule data 144 is data used in a case where an upgrade unit 156 which will be described later determines whether to upgrade the difficulty level of the skill. FIG. 11 is a view illustrating an example of a data structure of the upgrade rule data. As illustrated in FIG. 11, the upgrade rule data 144 includes the skill name, the body rotation angle in the previous motion, the starting point left hand support position in the previous motion, the starting point right hand support position in the previous motion, the end point left hand support position in the previous motion, and the end point right hand support position in the previous motion. In addition, the upgrade rule data 144 has a previous basic motion type and a difficulty level upgrade number.

In FIG. 11, the skill name corresponds to the skill name specified by the first evaluation unit 155 for the partial data of interest and is a target of whether to upgrade the difficulty level. The body rotation angle in the previous motion indicates the sum of the rotation angles of the body vector from the frame at the starting point to the frame at the end point included in the previous partial data. For example, as described in FIG. 9, the rotation angle is the rotation angle in a case where the body vector is projected onto the XY plane. The sum of the rotation angles is calculated assuming that the position of the body vector of the frame which is the starting point of the previous partial data is projected onto the XY plane, as 0°.

The starting point left hand support position in the previous motion indicates to which predetermined support position on the pommel horse the position of the left hand (left wrist) of the subject 5 corresponds, in the frame at the starting point included in the previous partial data. The starting point right hand support position in the previous motion indicates to which predetermined support position on the pommel horse the position of the right hand (right wrist) of the subject 5 corresponds, in the frame at the starting point included in the previous partial data.

The end point left hand support position in the previous motion indicates to which predetermined support position on the pommel horse the position of the left hand (left wrist) of the subject 5 corresponds, in the frame at the end point included in the previous partial data. The end point right hand support position in the previous motion indicates to which predetermined support position on the pommel horse the position of the right hand (right wrist) of the subject 5 corresponds, in the frame at the end point included in the previous partial data.

The basic motion type indicates the type of the basic motion that corresponds to the previous partial data.

The difficulty level upgrade number is information indicating how many levels the difficulty level of the skill specified by the first evaluation unit 155 is upgraded in a case where the corresponding condition is hit. For example, the skill name specified by the first evaluation unit 155 is “Front Scissor”, the body rotation angle is “less than 360°”, the starting point and the end point and each support position of the left hand and the right hand in the previous motion are “3”, and the previous basic motion type is “Handstand Twist”. In this case, the record in the first column of the upgrade rule data 144 is hit, and the difficulty level upgrade number becomes “1”. For example, in a case where the current difficulty level is “A”, when the difficulty level is upgraded one step higher, the corrected difficulty level becomes “B”.

The evaluation result data 145 is data that holds information on the evaluation result of the performance of the subject 5. FIG. 12 is a view illustrating an example of a data structure of the evaluation result data. As illustrated in FIG. 12, the evaluation result data 145 associates frame number, right hand position, left hand position, body angle, foot height, body orientation, segment flag, basic motion type, skill name, difficulty level, and E score to each other.

Each frame number is information for uniquely identifying the frame. The right hand position indicates to which predetermined support position on the pommel horse the position of the right hand (right wrist) of the subject 5 corresponds. The left hand position indicates to which predetermined support position on the pommel horse the position of the left hand (left wrist) of the subject 5 corresponds.

The body angle indicates the body angle of the subject 5. For example, the angle between the line segment in a case of projecting the body vector obtained from the corresponding frame onto the XY plane and the Y axis is defined as the body angle. The foot height indicates a higher position of the position of the right foot (right ankle) of the subject 5 and the left foot (left ankle) position of the subject.

The body orientation indicates whether the direction of the Z axis of the body vector is a positive direction or a negative direction. “Down” of the body orientation indicates that the orientation of the Z axis of the body vector is negative. “Up” of the body orientation indicates that the orientation of the Z axis of the body vector is positive.

The segment flag is information indicating whether or not the corresponding frame corresponds to the segment point. Whether or not the corresponding frame is a segment point is determined by the segmentation unit 153 which will be described later. In a case where the corresponding frame is a segment point, the segment flag is set to “1”. In a case where the corresponding frame is not a segment point, the segment flag is set to “0”.

The description related to the basic motion type, the skill name, and the difficulty level is the same as the description related to the basic motion type, the skill name, and the difficulty level described in FIG. 8.

The execution score (E score) indicates an E score of the basic motion type that corresponds to the partial data. The E score is calculated by a second evaluation unit 157 which will be described later.

The description will be made returning to FIG. 4. The control unit 150 includes an acquisition unit 151, the calculation unit 152, the segmentation unit 153, the identification unit 154, the first evaluation unit 155, the upgrade unit 156, the second evaluation unit 157, and a display control unit 158. The control unit 150 may be realized by a central processing unit (CPU), a micro processing unit (MPU), or the like. In addition, the control unit 150 may also be realized by a hard wired logic, such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

The acquisition unit 151 is a process unit that acquires the skeleton data 141 from the skeleton recognition device 20. The acquisition unit 151 registers the acquired skeleton data 141 in the storage unit 140. The data structure of the skeleton data 141 is the data structure described in FIG. 3.

The calculation unit 152 is a process unit that calculates the calculation result data 142 based on the skeleton data 141. The data structure of the calculation result data 142 is the data structure described in FIG. 5. In the calculation result data 142, the hand and foot position data and the body vector data that correspond to the frame number are registered by the calculation unit 152, and the segment number is registered by the segmentation unit 153.

The calculation unit 152 calculates the hand and foot position data and the body vector data for each frame. For example, the calculation unit 152 calculates the three-dimensional coordinates of the feature points 5 d and 5 g of the skeleton data 141 as the position of the hand. The calculation unit 152 calculates the three-dimensional coordinates of the feature points 5 m and 5 p of the skeleton data 141 as the position of the foot. The calculation unit 152 registers the hand and foot position data in the calculation result data 142 in association with the frame number of the corresponding frame.

The calculation unit 152 calculates the normal vector of the plane 6 that passes through the feature point 5 b of the right shoulder joint, the feature point 5 e of the left shoulder joint, and the feature point 5 i of the back, as the body vector. The calculation unit 152 registers the body vector data in the calculation result data 142 in association with the frame number of the corresponding frame.

The calculation unit 152 repeatedly executes the above-described process for each frame of the skeleton data 141 to generate the calculation result data 142.

The segmentation unit 153 is a process unit that specifies a frame that serves as a segment point based on the calculation result data 142 and classifies the plurality of frames into the plurality of groups based on the specified segment point. The segmentation unit 153 accesses the calculation result data 142 and sets the segment numbers of the frames belonging to the same group to be the same.

In the calculation result data 142, the segmentation unit 153 refers to the hand and foot position data that corresponds to a certain frame number. In a case where all of the following conditions A1, A2, and A3 are satisfied, the segmentation unit 153 determines that the frame that corresponds to a certain frame number is a segment point. A case where all of the conditions A1 to A3 are satisfied means that the direction of the body vector is downward while both hands of the subject 5 are on the pommel horse 8.

Condition A1: The position of the left hand of the subject 5 is positioned in one of the regions 8 a to 8 e illustrated in FIG. 10.

Condition A2: The position of the right hand of the subject 5 is positioned in one of the regions 8 a to 8 e illustrated in FIG. 10.

Condition A3: A Z axis component of the body vector is negative.

The segmentation unit 153 accesses the evaluation result data and sets the segment flag that corresponds to the frame number determined as the segment point to “1”. An initial value of the segment flag is set to “0”.

FIG. 13 is a view for describing an example of the process of the segmentation unit. The plurality of frames illustrated in FIG. 13 are arranged in time series. As an example, it is assumed that the frames 30 a, 31 a, and 32 a satisfy the above-described conditions A1 to A3 and are frames at the segment point. In this case, the segmentation unit 153 classifies each frame included in the range 30 into the same group. The segmentation unit 153 classifies each frame included in the range 31 into the same group. The segmentation unit 153 classifies each frame included in the range 32 into the same group.

The segment number of each frame included in the range 30 is “n”, the segment number of each frame included in the range 31 is “n+1”, and the segment number of each frame included in the range 32 is “n+2”. n is a natural number of 1 or more.

For example, in each frame included in the range 30, the frame 30 a at the front is the frame at the starting point, and a frame 30 b at the end is the frame at the end point. In each frame included in the range 31, the frame 31 a at the front is the frame at the starting point, and a frame 31 b at the end is the frame at the end point. In each frame included in the range 32, the frame 32 a at the front is the frame at the starting point, and a frame 32 b at the end is the frame at the end point.

Here, the “partial data” and the “previous partial data” will be described again. The data in which each frame included in the ranges 30, 31, and 32 is grouped respectively becomes the partial data. Assuming that the partial data of interest is each frame included in the range 31, the previous partial data is each frame included in the range 31.

The identification unit 154 is a process unit for identifying the basic motion type that corresponds to the partial data based on the movement of the feature point of the frame included in the partial data for each piece of the partial data. The identification unit 154 acquires the information of the feature point of the frame included in the partial data from the calculation result data 142. When identifying the basic motion type that corresponds to the partial data, the identification unit 154 registers the identification result in the evaluation result data 145 in association with the frame number.

For example, the identification unit 154 uses Hidden Markov Model (HMM). The HMM is a probability model in which time series data is input and which determines to which category (basic motion type) the time series data belongs. The identification unit 154 includes a learning phase and a recognition phase.

In the learning phase, the HMM obtains four sets of parameter sets λ for each basic motion type. The parameter set λ is defined by Equation (1). λ={Q,A,B,π}  (1)

In Equation (1), Q indicates a set of states and is defined by Equation (2). Q={a ₁ ,q ₂ , . . . ,q _(n)}  (2)

In Equation (1), A indicates a state transition probability matrix which is a set of transition probabilities a_(ij) from a state q_(i) to a state q_(j) and is defined by Equation (3). A={a _(ij)}  (3)

In Equation (1), B indicates a set of probability distributions that output a vector x in the state q_(j). In Equation (1), π indicates a set of initial states and is defined by Equation (4). π={πi}  (4)

Here, a probability density function in the state q_(i) is defined by Equation (5). In Equation (5), u_(i) indicates an average vector of the probability density function. Σ_(i) indicates a covariance matrix of the probability density function.

$\begin{matrix} \left\lbrack {{Formula}\mspace{14mu} 1} \right\rbrack & \; \\ {{b_{i}(x)} = {\frac{1}{\sqrt{\left( {2\pi} \right)^{m}{\sum\limits_{i}}}}\exp\left\{ {\frac{1}{2}\left( {x - \mu_{i}} \right)^{T}{\sum\limits_{i}^{- 1}\left( {x - \mu_{i}} \right)}} \right\}}} & (5) \end{matrix}$

An example of the process of the learning phase of the identification unit 154 will be described. In a case of determining the parameter set λ of a certain basic motion type, the identification unit 154 randomly sets the covariance parameters of the HMM as an initial state. The identification unit 154 prepares a plurality of pieces of partial data that correspond to a certain basic motion identification and performs process of calculating an HMM likelihood P (O_(segment)|Λ_(k)) for the partial data O_(segment).

The identification unit 154 repeatedly executes a process of optimizing the parameter set of Λ_(k) by using the partial data having the maximum likelihood P as a teacher signal of Λ_(k) related to the HMM. By the process, the identification unit 154 specifies the parameter set λ of a certain basic motion type. The identification unit 154 learns the parameter set λ for each basic motion type by performing the same process for the other basic motion types.

An example of the process of the recognition phase of the identification unit 154 will be described. When acquiring the partial data to be recognized for the basic motion type, the identification unit 154 specifies the maximum Λ_(k0) of Λ_(k) for each parameter set λ while changing the parameter set learned in the learning phase based on Equation (6). The identification unit 154 determines the basic motion type that corresponds to the parameter set λ used when calculating Λ_(k0) as the basic motion type of the partial data to be recognized.

$\begin{matrix} \left\lbrack {{Formula}\mspace{14mu} 2} \right\rbrack & \; \\ {\Lambda_{k\; 0} = {\arg\;{\max\limits_{\Lambda_{k}}{P\left( O_{segment} \middle| \Lambda_{k} \right)}}}} & (6) \end{matrix}$

The first evaluation unit 155 is a process unit that evaluates the skill and the difficulty level of the motion performed by the subject 5 based on the order of the basic motion types that correspond to the partial data which is consecutive in time series. Hereinafter, an example of the process of the first evaluation unit 155 will be described. Here, the partial data to be evaluated is simply expressed as the partial data, and the partial data one piece earlier than the partial data to be evaluated is expressed as the previous partial data.

The first evaluation unit 155 specifies the basic motion type of the partial data based on the frame number included in the partial data and the evaluation result data 145. The first evaluation unit 155 specifies the previous basic motion type of the previous partial data based on the frame number included in the previous partial data and the evaluation result data 145.

Using the frame number of the frame at the starting point included in the partial data as a key, the first evaluation unit 155 refers to the calculation result data 142 and specifies the starting point body angle region, the starting point left hand support position, and the starting point right hand support position. Using the frame number of the frame at the end point included in the partial data as a key, the first evaluation unit 155 refers to the calculation result data 142 and specifies the end point body angle region, the end point left hand support position, and the end point right hand support position.

For example, the first evaluation unit 155 specifies the starting point body angle region and the end point body angle region by comparing the definition of each angle region described in FIG. 9 with the body vector. The first evaluation unit 155 specifies the starting point left hand support position, the starting point right hand support position, the end point left hand support position, and the end point right hand support position by comparing each of the regions 8 a to 8 e described in FIG. 10 with the position data of the hand.

The first evaluation unit 155 identifies the skill name, the difficulty level, and the group that correspond to the partial data by comparing each piece of the specified information with the skill approval rule data 143. Here, each piece of the specified information includes the basic motion type and the previous motion type. In addition, each piece of the specified information includes the starting point body angle region, the starting point left hand support position, the starting point right hand support position, the end point body angle region, the end point left hand support position, and the end point right hand support position.

The first evaluation unit 155 registers the specified skill name, difficulty level, and group in the evaluation result data 145 in association with the frame number of the frame included in the partial data. In addition, the first evaluation unit 155 registers the right hand position, the left hand position, the body angle, the foot height, and the body orientation in association with the frame number. The first evaluation unit 155 specifies the skill name, the difficulty level, and the group by repeatedly executing the above-described process for the other pieces of partial data and registers the skill name, the difficulty level, and the group in the evaluation result data 145.

The upgrade unit 156 is a process unit that determines whether to upgrade the difficulty level evaluated by the first evaluation unit 155, and upgrades the difficulty level based on the determination result. Hereinafter, an example of the process of the upgrade unit 156 will be described. Here, the partial data to be evaluated is simply expressed as the partial data, and the partial data one piece earlier than the partial data to be evaluated is expressed as the previous partial data.

The upgrade unit 156 refers to the evaluation result data 145 by using the frame number of the frame included in the partial data as a key and specifies the skill name that corresponds to the partial data evaluated by the first evaluation unit 155.

The upgrade unit 156 calculates the body rotation angle based on the body vector of each frame included in the partial data. The body rotation angle is the sum of changes in body angle from the frame at the starting point to the frame at the end point. The upgrade unit 156 acquires the data of the body vector of each frame from the calculation result data 142.

Using the frame number of the frame at the starting point included in the partial data as a key, the upgrade unit 156 refers to the calculation result data 142 and specifies the starting point left hand support position and the starting point right hand support position. Using the frame number of the frame at the end point included in the partial data as a key, the upgrade unit 156 refers to the calculation result data 142 and specifies the end point left hand support position and the end point right hand support position. The upgrade unit 156 specifies the previous basic motion type of the previous partial data based on the frame number included in the previous partial data and the evaluation result data 145.

The upgrade unit 156 determines whether to upgrade the difficulty level that corresponds to the partial data by comparing each piece of the specified information with the upgrade rule data 144. Here, each piece of the specified information includes the skill name, the body rotation angle, the starting point left hand support position, the starting point right hand support position, the end point left hand support position, the end point right hand support position, and the previous basic motion type.

The upgrade unit 156 determines that the difficulty level is upgraded in a case where a column record that hits each piece of the specified information exists in the upgrade rule data 144. The upgrade unit 156 determines that the difficulty level is not upgraded in a case where the column record that hits each piece of the specified information does not exist in the upgrade rule data 144. In order to determine how many stages to upgrade, the difficulty level upgrade number of the hit column record is referred to.

For example, the skill name of the partial data is “Front Scissor”, the body rotation angle is “less than 360°”, the starting point and the end point and each support position of the left hand and the right hand in the previous motion are “3”, and the previous basic motion type is “Handstand Twist”. In this case, the record in the first column of the upgrade rule data 144 is hit, and the difficulty level upgrade number becomes “1”. In addition, in a case where the current difficulty level of the partial data is “A”, the upgrade unit 156 corrects the difficulty level to “B”.

The upgrade unit 156 updates the difficulty level of the evaluation result data 145 by repeatedly executing the above-described process with respect to the other pieces of partial data.

The second evaluation unit 157 is a process unit that evaluates the E score of the basic motion for each piece of partial data. In the second evaluation unit 157, it is assumed that a policy for calculating the E score is previously set for each basic motion type. Here, as an example, an example in which the second evaluation unit 157 calculates the E score of the basic motion type “Down” will be described. “Down” here indicates the basic motion when the subject 5 goes down from the pommel horse.

The second evaluation unit 157 uses an evaluation function F(k) illustrated in Equation (7). The evaluation function F(k) is a function for evaluating the k-th frame among the plurality of frames included in the partial data to be evaluated. F(k)=arcsin(Tz/Tx)  (7)

FIG. 14 is a view for describing the evaluation function F(k). In FIG. 14, Tx corresponds to the length of the X component from the shoulder joint to the tip of the toe (ankle) of the subject 5 in the k-th frame. Tz corresponds to the length of the Z component from the shoulder joint to the tip of the toe of the subject 5 in the k-th frame. For example, the position of the shoulder joint corresponds to the position of feature point 5 b or 5 e. The tip of the toe corresponds to the position of the feature point 5 m or 5 p.

In a case of evaluating “Down”, the second evaluation unit 157 repeatedly executes the above-described process for each frame included in the target partial data and calculates the value of F(k) for each frame. The second evaluation unit 157 does not determine the defect “0.3” on each frame which the value of F(k) is greater than 30°. The second evaluation unit 157 determines the defect “0.3” for the basic emotion, in a case where a frame in which the value of F(k) is greater than 30° appears.

The second evaluation unit 157 calculates the final E score for the basic motion based on Equation (8). Σ illustrated in Equation (8) indicates the sum of defects determined by the result of the evaluation function in all pieces of the partial data. In addition, in the description above, the “Down” evaluation function has been described as an example, but for other basic motions, the defects are also determined by the evaluation function that corresponds to the corresponding basic motion. For example, the evaluation function of the partial data of “Turn” is an evaluation function for evaluating the alignment of the tips of the left and right feet, and as much as both the left and right feet are not aligned, the defect becomes larger. Escore=10−Σ  (8)

The second evaluation unit 157 registers the information of the calculated E score in the evaluation result data 145 in association with the frame number. The second evaluation unit 157 may register the E score in the record of each frame included in the same partial data or may register the E score in the record of the frame at the starting point among the frames included in the same partial data. The second evaluation unit 157 similarly calculates the E score for the other pieces of partial data and registers the E score in the evaluation result data 145.

In addition, the first evaluation unit 155 may re-determine the difficulty level of the skill by using the evaluation result data 145 and a logical expression indicating a rule. The logical expression indicating a rule is a logical expression that associates the order of the skill name of each basic motion with a difficulty score (D score).

The display control unit 158 is a process unit that generates a display screen based on the evaluation result data 145 and displays the display screen on the display unit 130. FIG. 15 is a view illustrating an example of the display screen. As illustrated in FIG. 15, a display screen 50 includes regions 50 a to 50 g. In addition, the display control unit 158 may display the evaluation result data 145 on the display unit 130 as it is.

The region 50 a is a region that displays the hand and foot position data and the body vector data of the current subject 5. The region 50 b is a region that displays the hand and foot position data and the body vector data when the subject 5 starts the performance. The region 50 c is a region that displays the hand and foot position data and the body vector data of the current subject 5 specified by the frame one piece earlier than the current frame. The region 50 d is a region that displays the hand and foot position data and the body vector data of the current subject 5 specified by the frame two pieces earlier than the current frame. The region 50 e is a region that displays the hand and foot position data and the body vector data of the current subject 5 specified by the frame three pieces earlier than the current frame. The region 50 f is a region that displays the skill name of the basic motion specified by the partial data including the current frame. The region 50 g is a region that displays an image visualizing the information of the 3D sensor 10.

Next, the process procedure of the motion recognition device 100 according to the present example will be described. FIGS. 16 and 17 are flowcharts illustrating the process procedure of the motion recognition device. As illustrated in FIG. 16, the motion recognition device 100 updates the frame number to be processed with a value obtained by adding 1 to the frame number (step S101). The calculation unit 152 of the motion recognition device 100 reads the skeleton data 141 (step S102).

The calculation unit 152 calculates the hand and foot position data and the body vector data based on the skeleton data 141 (step S103). The segmentation unit 153 of the motion recognition device 100 sets a front surface support flag (step S104). In step S104, the segmentation unit 153 sets the front surface support flag to “1” in a case where all of the above-described conditions A1, A2, and A3 are satisfied. In a case where all of the conditions A1, A2, and A3 are not satisfied, the segmentation unit 153 sets the front surface support flag to “0”. The front surface support flag is associated with the frame number to be processed.

The segmentation unit 153 sets a landing flag (step S105). In step S105, the segmentation unit 153 sets the landing flag to “1” in a case where the position of the tip of the left toe (left ankle) or the position of the right foot (right ankle) of the subject 5 is less than a predetermined threshold value. The segmentation unit 153 sets the landing flag to “0” in a case where the position of the tip of the left toe (left ankle) or the position of the right foot (right ankle) of the subject 5 is equal to or greater than a predetermined threshold value. The landing flag is associated with the frame number to be processed.

The segmentation unit 153 performs segment point determination process (step S106). In step S106, in a case where the front surface support flag that corresponds to the previous frame number is “0” and the front surface support flag that corresponds to the frame number to be processed is “1”, the segmentation unit 153 determines that the frame that corresponds to the frame number to be processed is a segment point. In a case where the front surface support flag that corresponds to the previous frame number is “1” and the front surface support flag that corresponds to the frame number to be processed is “0”, the segmentation unit 153 determines that the frame that corresponds to the frame number to be processed is not a segment point.

In a case where it is determined that the frame is not a segment point (No in step S107), the segmentation unit 153 registers the hand and foot position data, the body vector data, and the current segment number in the calculation result data 142 in association with the frame number (step S108), and proceeds to step S101.

In a case where it is determined that that the frame is a segment point (Yes in step S107), the segmentation unit 153 updates the current segment number (step S109) and proceeds to step S110 in FIG. 17.

The identification unit 154 of the motion recognition device 100 determines the basic motion type based on the frame of the segment number n (step S110). The first evaluation unit 155 of the motion recognition device 100 determines the skill name and the difficulty level based on the skill approval rule data 143 (step S111 a). The upgrade unit 156 of the motion recognition device 100 upgrades the difficulty level based on the upgrade rule data 144 (step S112) and proceeds to step S113.

The second evaluation unit 157 of the motion recognition device 100 calculates the E score related to the basic motion (step S111 b), and proceeds to step S113.

The motion recognition device 100 registers the skill, the difficulty level, and the E score in the evaluation result table 145 in association with the frame number (step S113).

The motion recognition device 100 performs performance termination determination process (step S114). In step S114, the motion recognition device 100 determines that the performance is terminated in a case where the group to which the skill belongs is a predetermined group. The motion recognition device 100 determines that the performance is terminated in a case where a value of a drop count that totaled the landing flags is equal to or greater than the predetermined number.

In a case where the performance is not terminated (No in step S115), the motion recognition device 100 moves to step S101 in FIG. 16. In a case where the performance is terminated (Yes in step S115), the motion recognition device 100 sets the landing flag, the drop count, and the segment number to initial values (step S116).

The first evaluation unit 155 of the motion recognition device 100 re-determines the difficulty level of the skill by using the evaluation result data 145 and the logical expression indicating a rule, and calculates the D score (step S117). The display control unit 158 of the motion recognition device 100 displays the evaluation result (step S118).

Next, an example of process for determining the skill name and the difficulty level based on the skill approval rule data described in step S111 a of FIG. 17 will be described. FIG. 18 is a flowchart illustrating a process procedure for determining the skill name and the difficulty level. As illustrated in FIG. 18, the first evaluation unit 155 of the motion recognition device 100 acquires the hand and foot position data and the frame vector data of the frame that corresponds to the segment number n from the calculation result data 142 (step S201).

The first evaluation unit 155 specifies the starting point body angle region, the starting point left hand support position, the starting point right hand support position based on the hand and foot position data that corresponds to the frame at the starting point (step S202). The first evaluation unit 155 specifies the end point body angle region, the end point left hand support position, and the end point right hand support position based on the hand and foot position data that corresponds to the frame at the end point (step S203).

The first evaluation unit 155 specifies the basic motion type and the previous motion type that correspond to the segment number n (step S204).

The first evaluation unit 155 compares each piece of the specified information with the skill approval rule data 143, and determines whether or not a column record to be hit exists (step S205). Here, each piece of the specified information includes the starting point body angle region, the starting point left hand support position, the starting point right hand support position, the end point body angle region, the end point left hand support position, the end point right hand support position, the basic motion type, and the previous basic motion type.

In a case where the column record is hit (Yes in step S206), the first evaluation unit 155 specifies the skill name, the group, and the difficulty level n included in the hit column record as the skill name, the group, and the difficulty level that correspond to the segment number n (step S207).

In a case where the column record is not hit (No in step S206), the first evaluation unit 155 sets the skill name that corresponds to the segment number n to be unknown and sets the group and the difficulty level to 0 (step S208).

Next, an example of process for upgrading the difficulty level based on the skill approval rule data described in step S112 of FIG. 17 will be described. FIG. 19 is a flowchart illustrating a process procedure for upgrading the difficulty level. As illustrated in FIG. 19, the upgrade unit 156 of the motion recognition device 100 acquires the hand and foot position data and the body vector data of the frame that corresponds to the segment number n from the calculation result data 142 (step S301).

The upgrade unit 156 calculates the body rotation angle based on the body vector from the frame at the starting point to the frame at the end point (step S302).

The upgrade unit 156 specifies the starting point left hand support position and the starting point right hand support position based on the hand and foot position data that corresponds to the frame at the starting point (step S303). The end point left hand support position and the end point right hand support position are specified based on the hand and foot position data that corresponds to the frame at the end point (step S304).

The upgrade unit 156 specifies the skill name and the previous motion type that correspond to the segment number n (step S305).

The upgrade unit 156 compares each piece of the specified information with the upgrade rule data 144, and determines whether or not the column record to be hit exists (step S306). In a case where the column record is hit (Yes in step S307), the upgrade unit 156 upgrades the difficulty level in accordance with the difficulty level upgraded number (step S308). In a case where the column record is not hit (No in step S307), the upgrade unit 156 terminates the process.

FIG. 20 is a view illustrating an example of process of the motion recognition device. In the example illustrated in FIG. 20, the segmentation unit 153 sets segment points 60 a to 60 g based on the calculation result data 142. For example, in the frame of the segment points 60 a, 60 b, and 60 c, the left hand support position of the subject 5 is “2” and the right hand support position is “4”. In the frame of the segment point 60 d, the left hand support position of the subject 5 is “4” and the right hand support position is “4”. In the frame of the segment point 60 e, the left hand support position of the subject 5 is “4” and the right hand support position is “2”. In the frame of segment points 60 f and 60 g, the left hand support position of the subject 5 is “2” and the right hand support position is “2”. In addition, in the frame of segment points 60 a to 60 g, although not being illustrated, it is assumed that the body vector is oriented downward.

As an example, the body angle of the frame of the segment points 60 a, 60 b, and 60 c is 180°. The body angle of the frame of the segment point 60 d is 90°. The body angle of the frame of the segment point 60 e is 0°. The body angle of the frame of the segment points 60 f and 60 g is 270°.

As an example, the identification unit 154 determines the basic motion type as “CCW turn” from the movement of the feature points of each frame included in the segment points 60 a to 60 b. The identification unit 154 determines the basic motion type as “CCW turn” from the movement of the feature points of each frame included in the segment points 60 b to 60 c. The identification unit 154 determines the basic motion type as “CCW downward reverse ¼ conversion” from the movement of the feature points of each frame included in the segment points 60 c to 60 d. The identification unit 154 determines the basic motion type as “CCW upward reverse ¼ conversion” from the movement of the feature points of each frame included in the segment points 60 d to 60 e. The identification unit 154 determines the basic motion type as “CCW downward reverse ¼ turn” from the movement of the feature points of each frame included in the segment points 60 e to 60 f. The identification unit 154 determines the basic motion type as “CCW turn” from the movement of the feature points of each frame included in the segment points 60 f to 60 g.

For example, the first evaluation unit 155 determines the skill name performed by the subject between each frame included in the segment points 60 a to 60 b as “horizontal turn” and the difficulty level “A”, based on the skill approval rule data 143. The first evaluation unit 155 determines the skill name performed by the subject between each frame included in the segment points 60 b to 60 c as “horizontal turn” and the difficulty level “A”, based on the skill approval rule data 143. The first evaluation unit 155 determines the skill name performed by the subject between each frame included in the segment points 60 c to 60 e as “handle up-down conversion” and the difficulty level “B”, based on the skill approval rule data 143. The first evaluation unit 155 determines the skill name “unknown” and the difficulty level “−” without setting the skill name and the difficulty level performed by the subject between each frame included in the segment points 60 e to 60 f, based on the skill approval rule data 143. The first evaluation unit 155 determines the skill name performed by the subject between each frame included in the segment points 60 f to 60 g as “one handle upward vertical turn” and the difficulty level “B”, based on the skill approval rule data 143.

As an example, the second evaluation unit 157 determines that the E score of the performance performed by the subject between each frame included in the segment points 60 a to 60 b is “8”. The second evaluation unit 157 determines that the E score of the performance performed by the subject between each frame included in the segment points 60 b to 60 c is “8.5”. The second evaluation unit 157 determines that the E score of the performance performed by the subject between each frame included in the segment points 60 c to 60 e is “7.8”. The second evaluation unit 157 determines that the E score of the performance performed by the subject between the frames included in the segment points 60 e to 60 f is “1”. The second evaluation unit 157 determines that the E score of the performance performed by the subject between each frame included in the segment points 60 f to 60 g is “8.3”.

Next, the effect of the motion recognition device 100 according to the present example will be described. Based on the skeleton data 141 of the subject 5, the motion recognition device 100 specifies a frame that serves as a segment point and classifies the frame into a plurality of pieces of partial data. The motion recognition device 100 specifies the basic motion type of each piece of partial data, and evaluates the skill number and the difficulty level of the motion performed by the subject based on the order of the basic motion types of the partial data which is consecutive in time series. In this manner, in order to evaluate the skill name and the difficulty level based on the order of the basic motion type, according to the motion recognition device 100, the performance of the subject 5 may be evaluated efficiently.

The motion recognition device 100 upgrades the difficulty level of the motion based on the order and the body rotation angle of the basic motion type of the partial data which is consecutive in time series. Therefore, it is possible to specify an accurate difficulty level that corresponds to complicated evaluation criteria of competition.

The motion recognition device 100 calculates the E score that corresponds to the partial data based on the evaluation criterion that associates the features at the feature points of each frame included in the partial data with the score. Therefore, in addition to the skill and the difficulty level, the E score may also be calculated appropriately.

The motion recognition device 100 specifies a frame in which the body vector is oriented downward and both hands of the subject 5 are positioned in a predetermined region as a segment point. Therefore, it is possible to appropriately segment a plurality of frames, and it is possible to improve the determination accuracy of the skill or the difficulty level.

However, the calculation unit 152 of the motion recognition device 100 according to the present example performs calculation by using the normal vector 7 of the plane 6 that passes through the feature point 5 b of the right shoulder function, the feature point 5 e of the right shoulder joint, and the feature point 5 i in the back as a body vector, but the present invention is not limited thereto.

FIG. 21 is a view for describing an example of another body vector. The calculation unit 152 may perform calculation by using the normal vector 7 a of the plane 6 a that passes through the feature points 5 k and 5 n of each hip joint (right hip joint, left hip joint) and the feature point 5 i of the back as a body vector. In addition, the direction of the normal vector 7 a is taken as the ventral side of the subject 5, and the magnitude of the normal vector 7 a is set to “1”. In the following description, the normal vector 7 a is expressed as the body vector 7 a. The starting point of the body vector 7 a may be in any place as long as the starting point is fixed onto the plane (triangle) 6 a, but may be the midpoint of the feature points 5 k and 5 n or the center of gravity of the plane 6 a. Even in a case where the body vector 7 a is used instead of the body vector 7, the segmentation unit 153 may appropriately segment the plurality of frames and improve the determination accuracy of the skill or the difficulty level. Furthermore, the body vector 7 a is appropriate for evaluating the orientation of the lower part of the trunk compared with the body vector 7.

In addition, the calculation unit 152 may adjust or estimate the position coordinates of the feature points 5 b, 5 e, 5 i, 5 k, and 5 n by inverse kinematics calculation using the entire feature point position coordinates so as to match the actual motion of the subject 5, and may calculate the body vector 7 and the body vector 7 a. The calculation unit 152 may employ the unit normal vector of the plane 6 of the adjusted or estimated feature points 5 b, 5 e, and 5 i or the plane 6 a of the adjusted or estimated feature points 5 i, 5 k, and 5 n, as the body vector. In this manner, by employing the body vectors 7 and 7 a which are adjusted or estimated and calculated so as to make the position coordinates of each of the feature points 5 b, 5 e, 5 i, 5 k, and 5 n, due to the reason, such as occlusion, it is possible to correspond to a case where it is not possible to directly detect the feature point of the subject 5 or a case where the error of the position of the feature point becomes large, and the determination accuracy of the skill may be improved.

Next, an example of a hardware configuration of a computer that realizes a function similar to that of the motion recognition device 100 illustrated in the above-described example will be described. FIG. 22 is a view illustrating an example of the hardware configuration of the computer that realizes the function similar to that of the motion recognition device.

As illustrated in FIG. 22, the computer 200 includes a CPU 201 that executes various arithmetic process, an input device 202 that receives the input of the data from a user, and a display 203. Furthermore, the computer 200 includes a reading device 204 for reading a program or the like from a storage medium, and an interface device 205 for exchanging the data with another computer via a network. The computer 200 acquires the skeleton data from the skeleton recognition device 20 via the interface device 205. Further, the computer 200 includes a RAM 206 for temporarily storing various pieces of information, and a hard disk device 207. In addition, each of the devices 201 to 207 is connected to the bus 208.

The hard disk device 207 has an acquisition program 207 a, a calculation program 207 b, a segmentation program 207 c, an identification program 207 d, a first evaluation program 207 e, an upgrade program 207 f, a second evaluation program 207 g, and a display program 207 h. The CPU 201 reads out each of the programs 207 a to 207 h and develops the programs in the RAM 206.

The acquisition program 207 a functions as an acquisition process 206 a. The calculation program 207 b functions as a calculation process 206 b. The segmentation program 207 c functions as a segmentation process 206 c. The identification program 207 d functions as an identification process 206 d. The first evaluation program 207 e functions as a first evaluation process 206 e. The upgrade program 207 f functions as an upgrade process 206 f. The second evaluation program 207 g functions as a second evaluation process 206 g. The display program 207 h functions as a display process 206 h.

The process of the acquisition process 206 a corresponds to the process of the acquisition unit 151. The process of the calculation process 206 b corresponds to the process of the calculation unit 152. The process of the segmentation process 206 c corresponds to the process of the segmentation unit 153. The process of the identification process 206 d corresponds to the process of the identification unit 154. The process of the first evaluation process 206 e corresponds to the process of the first evaluation unit 155. The process of the upgrade process 206 f corresponds to the process of the upgrade unit 156. The process of the second evaluation process 206 g corresponds to the process of the second evaluation unit 157. The process of the display process 206 h corresponds to the process of the display control unit 158.

In addition, each of the programs 207 a to 207 h do not necessarily have to be stored in the hard disk device 207 from the beginning. For example, each program is stored in “portable physical medium”, such as a flexible disk (FD), a CD-ROM, a DVD disk, a magnetooptical disk, an IC card or the like inserted into the computer 200. In addition, the computer 200 may read out and execute each of the programs 207 a to 207 h.

The skill names in the specification may replaced by the skill names defined by the gymnastics.

All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention. 

What is claimed is:
 1. A motion recognition device comprising: a memory; and a processor coupled to the memory and configured to: classify a plurality of frames including positional information of a feature point that corresponds to a predetermined part or a joint part of a body of a subject into a plurality of groups in time series by segmenting the plurality of frames in time series based on a position of the predetermined part of the body of the subject; identify, for a respective group, a type of a basic motion that corresponds to the respective group, based on movement of the feature point included in a consecutive frame; and evaluate, for the respective group, a skill and a difficulty level of the movement indicated by the respective group, by using a criteria identified by both of a first basic motion type and a second basic motion type, the first basic motion type being the type of the basic motion identified for the respective group, the second basic motion type being the type of the basic motion identified for a group one before the respective group, wherein the evaluating is configured to evaluate, for each group, a score of the respective group by comparing features of the feature points included in the frame of the respective group with evaluation criteria, the evaluation criterion being information indicating a respective score corresponding to each feature indicated by feature points to be included in frames.
 2. The motion recognition device according to claim 1, the processor further configured to: in response to performing of the evaluating, upgrade a value corresponding to the evaluated difficulty level of the motion performed by the subject based on the order of the basic motion that corresponds to the group which is consecutive in time series and a rotation angle of the body of the subject.
 3. The motion recognition device according to claim 1, the processor further configured to: repeatedly execute a process of determining a frame that serves as a segment point based on a direction of a normal vector of a plane that passes through both shoulders and a back of the subject and the positions of both hands of the subject, and classifies the plurality of frames sandwiched between the frames that serve as the segment points into one group.
 4. The motion recognition device according to claim 1, the processor further configured to: repeatedly execute a process of determining a frame that serves as a segment point based on a direction of a normal vector of a plane that passes through both hip joints and a back of the subject and the positions of both hands of the subject, and classifies the plurality of frames sandwiched between the frames that serve as the segment points into one group.
 5. A motion recognition method of which a process is executed by a computer, the process comprising: classifying a plurality of frames including positional information of a feature point that corresponds to a predetermined part or a joint part of a body of a subject into a plurality of groups in time series by segmenting the plurality of frames in time series based on a position of the predetermined part of the body of the subject, identifying, for a respective group, a type of a basic motion that corresponds to the respective group, based on movement of the feature point included in a consecutive frame; and evaluating, for the respective group, a skill and a difficulty level of the movement indicated by the respective group, by using a criteria identified by both of a first basic motion type and a second basic motion type, the first basic motion type being the type of the basic motion identified for the respective group, the second basic motion type being the type of the basic motion identified for a group one before the respective group, wherein the evaluating is configured to evaluate, for each group, a score of the respective group by comparing features of the feature points included in the frame of the respective group with evaluation criteria, the evaluation criterion being information indicating a respective score corresponding to each feature indicated by feature points to be included in frames.
 6. The motion recognition method according to claim 5, wherein in response to performing of the evaluating, upgrading a value corresponding to the evaluated difficulty level of the motion performed by the subject based on the order of the basic motion that corresponds to the group which is consecutive in time series and a rotation angle of the body of the subject.
 7. The motion recognition method according to claim 5, wherein in the process of classifying, a process of determining a frame that serves as a segment point is repeatedly executed based on a direction of a normal vector of a plane that passes through both shoulders and a back of the subject and the positions of both hands of the subject, and the plurality of frames sandwiched between the frames that serve as the segment points are classified into one group.
 8. The motion recognition method according to claim 5, wherein in the process of classifying, a process of determining a frame that serves as a segment point is repeatedly executed based on a direction of a normal vector of a plane that passes through both hip joints and a back of the subject and the positions of both hands of the subject, and the plurality of frames sandwiched between the frames that serve as the segment points are classified into one group.
 9. A non-transitory computer-readable storage medium storing a motion recognition program that causes a computer to execute a process, the process comprising: classifying a plurality of frames including positional information of a feature point that corresponds to a predetermined part or a joint part of a body of a subject into a plurality of groups in time series by segmenting the plurality of frames in time series based on a position of the predetermined part of the body of the subject; identifying, for a respective group, a type of a basic motion that corresponds to the respective group, based on movement of the feature point included in a consecutive frame; and evaluating, for the respective group, a skill and a difficulty level of the movement indicated by the respective group, by using a criteria identified by both of a first basic motion type and a second basic motion type, the first basic motion type being the type of the basic motion identified for the respective group, the second basic motion type being the type of the basic motion identified for a group one before the respective group, wherein the evaluating is configured to evaluate, for each group, a score of the respective group by comparing features of the feature points included in the frame of the respective group with evaluation criteria, the evaluation criterion being information indicating a respective score corresponding to each feature indicated by feature points to be included in frames.
 10. The non-transitory computer-readable storage medium according to claim 9, the process further comprising: in response to performing of the evaluating, upgrading a value corresponding to the evaluated difficulty level of the motion performed by the subject based on the order of the basic motion that corresponds to the group which is consecutive in time series and a rotation angle of the body of the subject.
 11. The non-transitory computer-readable storage medium according to claim 9, wherein in the process of classifying, a process of determining a frame that serves as a segment point is repeatedly executed based on a direction of a normal vector of a plane that passes through both shoulders and a back of the subject and the positions of both hands of the subject, and the plurality of frames sandwiched between the frames that serve as the segment points are classified into one group.
 12. The non-transitory computer-readable storage medium according to claim 9, wherein in the process of classifying, a process of determining a frame that serves as a segment point is repeatedly executed based on a direction of a normal vector of a plane that passes through both hip joints and a back of the subject and the positions of both hands of the subject, and the plurality of frames sandwiched between the frames that serve as the segment points are classified into one group. 